package maple.thelittleredbook.logging.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 系统日志实体类
 */
@Data
@TableName("sys_logs")
public class SysLog {

    /**
     * 日志ID，主键，自增
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 用户ID，可空（未登录访问）
     */
    private Long userId;

    /**
     * 用户名，可空
     */
    private String username;

    /**
     * 操作类型，可空
     */
    private String operation;

    /**
     * 请求方法，可空
     */
    private String method;

    /**
     * 请求URL，可空
     */
    private String requestUrl;

    /**
     * 请求方式（GET、POST等），可空
     */
    private String requestMethod;

    /**
     * 请求参数，可空
     */
    private String requestParams;

    /**
     * 请求IP，可空
     */
    private String requestIp;

    /**
     * 响应状态码，可空
     */
    private Integer responseCode;

    /**
     * 响应数据，可空
     */
    private String responseData;

    /**
     * 耗时（毫秒），可空
     */
    private Long costTime;

    /**
     * 创建时间，非空，默认当前时间
     */
    private LocalDateTime createdAt;
}